home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / vim / src / cmdtab.tab < prev    next >
Text File  |  1995-03-09  |  9KB  |  197 lines

  1. /* vi:ts=4
  2.  *
  3.  * VIM - Vi IMproved
  4.  *
  5.  * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  6.  *                            Tim Thompson            twitch!tjt
  7.  *                            Tony Andrews            onecom!wldrdg!tony 
  8.  *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  9.  */
  10.  
  11. /*
  12.  * |This file is read by mkcmdtab to produce cmdtab.h.
  13.  *
  14.  * The bars are used to recognize file positions. Do not insert/delete them.|
  15.  */
  16.  
  17. #define RANGE    0x01            /* allow a linespecs */
  18. #define BANG    0x02            /* allow a ! after the command name */
  19. #define EXTRA    0x04            /* allow extra args after command name */
  20. #define XFILE    0x08            /* expand wildcards in extra part */
  21. #define NOSPC    0x10            /* no spaces allowed in the extra part */
  22. #define    DFLALL    0x20            /* default file range is 1,$ */
  23. #define NODFL    0x40            /* do not default to the current file name */
  24. #define NEEDARG    0x80            /* argument required */
  25. #define TRLBAR    0x100            /* check for trailing vertical bar */
  26. #define REGSTR    0x200            /* allow "x for register designation */
  27. #define COUNT    0x400            /* allow count in argument, after command */
  28. #define NOTRLCOM 0x800            /* no trailing comment allowed */
  29. #define ZEROR    0x1000            /* zero line number allowed */
  30. #define USECTRLV 0x2000            /* do not remove CTRL-V from argument */
  31. #define NOTADR    0x4000            /* number before command is not an address */
  32. #define FILES    (XFILE + EXTRA)    /* multiple extra files allowed */
  33. #define WORD1    (EXTRA + NOSPC)    /* one extra word allowed */
  34. #define FILE1    (FILES + NOSPC)    /* 1 file allowed, defaults to current file */
  35. #define NAMEDF    (FILE1 + NODFL)    /* 1 file allowed, defaults to "" */
  36. #define NAMEDFS    (FILES + NODFL)    /* multiple files allowed, default is "" */
  37.  
  38. /*
  39.  * This array maps ex command names to command codes. The order in which
  40.  * command names are listed below is significant -- ambiguous abbreviations
  41.  * are always resolved to be the first possible match (e.g. "r" is taken
  42.  * to mean "read", not "rewind", because "read" comes before "rewind").
  43.  * Not supported commands are included to avoid ambiguities.
  44.  */
  45. static struct
  46. {
  47.     char_u    *cmd_name;    /* name of the command */
  48.     short     cmd_argt;    /* command line arguments permitted/needed/used */
  49. } cmdnames[] =
  50. {
  51. |    {(char_u *)"append",        BANG+RANGE+TRLBAR},            /* not supported */
  52.     {(char_u *)"all",            TRLBAR},
  53.     {(char_u *)"abbreviate",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  54.     {(char_u *)"args",            RANGE+NOTADR+BANG+NAMEDFS},
  55.     {(char_u *)"argument",        BANG+RANGE+NOTADR+COUNT+EXTRA},
  56.     {(char_u *)"buffer",        RANGE+NOTADR+COUNT+TRLBAR},
  57.     {(char_u *)"ball",            TRLBAR},
  58.     {(char_u *)"buffers",        TRLBAR},
  59.     {(char_u *)"bdelete",        BANG+RANGE+NOTADR+COUNT+EXTRA+TRLBAR},
  60.     {(char_u *)"bunload",        BANG+RANGE+NOTADR+COUNT+EXTRA+TRLBAR},
  61.     {(char_u *)"bmodified",        RANGE+NOTADR+COUNT+TRLBAR},
  62.     {(char_u *)"bnext",            RANGE+NOTADR+COUNT+TRLBAR},
  63.     {(char_u *)"bNext",            RANGE+NOTADR+COUNT+TRLBAR},
  64.     {(char_u *)"bprevious",        RANGE+NOTADR+COUNT+TRLBAR},
  65.     {(char_u *)"brewind",        RANGE+TRLBAR},
  66.     {(char_u *)"blast",            RANGE+TRLBAR},
  67.     {(char_u *)"change",        BANG+RANGE+COUNT+TRLBAR},    /* not supported */
  68.     {(char_u *)"cabbrev",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  69.     {(char_u *)"cc",            TRLBAR+WORD1+BANG},
  70.     {(char_u *)"cd",            NAMEDF+TRLBAR},
  71.     {(char_u *)"center",        TRLBAR+RANGE+EXTRA},
  72.     {(char_u *)"cf",            TRLBAR+FILE1+BANG},
  73.     {(char_u *)"chdir",            NAMEDF+TRLBAR},
  74.     {(char_u *)"cl",            TRLBAR},
  75.     {(char_u *)"close",            BANG+TRLBAR},
  76.     {(char_u *)"cmap",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  77.     {(char_u *)"cn",            TRLBAR+WORD1+BANG},
  78.     {(char_u *)"cnoremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  79.     {(char_u *)"cnoreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  80.     {(char_u *)"copy",            RANGE+EXTRA+TRLBAR},
  81.     {(char_u *)"cp",            TRLBAR+WORD1+BANG},
  82.     {(char_u *)"cq",            TRLBAR+BANG},
  83.     {(char_u *)"cunmap",        BANG+EXTRA+TRLBAR+USECTRLV},
  84.     {(char_u *)"cunabbrev",        EXTRA+TRLBAR+USECTRLV},
  85.     {(char_u *)"delete",        RANGE+REGSTR+COUNT+TRLBAR},
  86.     {(char_u *)"display",        TRLBAR},
  87.     {(char_u *)"digraphs",        EXTRA+TRLBAR},
  88.     {(char_u *)"edit",            BANG+FILE1},
  89.     {(char_u *)"ex",            BANG+FILE1},
  90.     {(char_u *)"exit",            BANG+FILE1+DFLALL+TRLBAR},
  91.     {(char_u *)"file",            FILE1+TRLBAR},
  92.     {(char_u *)"files",            TRLBAR},
  93.     {(char_u *)"global",        RANGE+BANG+EXTRA+DFLALL},
  94.     {(char_u *)"help",            TRLBAR},
  95.     {(char_u *)"insert",        BANG+RANGE+TRLBAR},            /* not supported */
  96.     {(char_u *)"iabbrev",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  97.     {(char_u *)"imap",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  98.     {(char_u *)"inoremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  99.     {(char_u *)"inoreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  100.     {(char_u *)"iunmap",        BANG+EXTRA+TRLBAR+USECTRLV},
  101.     {(char_u *)"iunabbrev",        EXTRA+TRLBAR+USECTRLV},
  102.     {(char_u *)"join",            RANGE+COUNT+TRLBAR},
  103.     {(char_u *)"jumps",            TRLBAR},
  104.     {(char_u *)"k",                RANGE+WORD1+TRLBAR},
  105.     {(char_u *)"list",            RANGE+COUNT+TRLBAR},
  106.     {(char_u *)"last",            EXTRA+BANG},
  107.     {(char_u *)"left",            TRLBAR+RANGE+EXTRA},
  108.     {(char_u *)"move",            RANGE+EXTRA+TRLBAR},
  109.     {(char_u *)"mark",            RANGE+WORD1+TRLBAR},
  110.     {(char_u *)"marks",            TRLBAR},
  111.     {(char_u *)"map",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  112.     {(char_u *)"make",            NEEDARG+EXTRA+TRLBAR+XFILE},
  113.     {(char_u *)"mkexrc",        BANG+FILE1+TRLBAR},
  114.     {(char_u *)"mkvimrc",        BANG+FILE1+TRLBAR},
  115.     {(char_u *)"mfstat",        TRLBAR},                /* for debugging */
  116.     {(char_u *)"mode",            WORD1+TRLBAR},
  117.     {(char_u *)"next",            RANGE+NOTADR+BANG+NAMEDFS},
  118.     {(char_u *)"new",            BANG+FILE1+RANGE+NOTADR},
  119.     {(char_u *)"number",        RANGE+COUNT+TRLBAR},
  120.     {(char_u *)"#",                RANGE+COUNT+TRLBAR},
  121.     {(char_u *)"noremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  122.     {(char_u *)"noreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  123.     {(char_u *)"Next",            EXTRA+RANGE+NOTADR+COUNT+BANG},
  124.     {(char_u *)"only",            BANG+TRLBAR},
  125.     {(char_u *)"print",            RANGE+COUNT+TRLBAR},
  126.     {(char_u *)"pop",            RANGE+NOTADR+COUNT+TRLBAR+ZEROR},
  127.     {(char_u *)"put",            RANGE+BANG+REGSTR+TRLBAR},
  128.     {(char_u *)"preserve",        TRLBAR},
  129.     {(char_u *)"previous",        EXTRA+RANGE+NOTADR+COUNT+BANG},
  130.     {(char_u *)"pwd",            TRLBAR},
  131.     {(char_u *)"quit",            BANG+TRLBAR},
  132.     {(char_u *)"qall",            BANG+TRLBAR},
  133.     {(char_u *)"read",            RANGE+NAMEDF+TRLBAR+ZEROR},
  134.     {(char_u *)"rewind",        EXTRA+BANG},
  135.     {(char_u *)"recover",        FILE1+TRLBAR},                /* not supported */
  136.     {(char_u *)"redo",            TRLBAR},
  137.     {(char_u *)"right",            TRLBAR+RANGE+EXTRA},
  138.     {(char_u *)"resize",        TRLBAR+WORD1},
  139.     {(char_u *)"substitute",    RANGE+EXTRA},
  140.     {(char_u *)"sargument",        BANG+RANGE+NOTADR+COUNT+EXTRA},
  141.     {(char_u *)"sall",            TRLBAR},
  142.     {(char_u *)"sbuffer",        RANGE+NOTADR+COUNT+TRLBAR},
  143.     {(char_u *)"sball",            TRLBAR},
  144.     {(char_u *)"sbmodified",    RANGE+NOTADR+COUNT+TRLBAR},
  145.     {(char_u *)"sbnext",        RANGE+NOTADR+COUNT+TRLBAR},
  146.     {(char_u *)"sbNext",        RANGE+NOTADR+COUNT+TRLBAR},
  147.     {(char_u *)"sbprevious",    RANGE+NOTADR+COUNT+TRLBAR},
  148.     {(char_u *)"sbrewind",        TRLBAR},
  149.     {(char_u *)"sblast",        TRLBAR},
  150.     {(char_u *)"suspend",        TRLBAR+BANG},
  151.     {(char_u *)"set",            EXTRA+TRLBAR},
  152.     {(char_u *)"setkeymap",        NAMEDF+TRLBAR},
  153.     {(char_u *)"shell",            TRLBAR},
  154.     {(char_u *)"sleep",            RANGE+COUNT+NOTADR+TRLBAR},
  155.     {(char_u *)"source",        NAMEDF+NEEDARG+TRLBAR},
  156.     {(char_u *)"split",            BANG+FILE1+RANGE+NOTADR},
  157.     {(char_u *)"snext",            RANGE+NOTADR+BANG+NAMEDFS},
  158.     {(char_u *)"sNext",            EXTRA+RANGE+NOTADR+COUNT+BANG},
  159.     {(char_u *)"sprevious",        EXTRA+RANGE+NOTADR+COUNT+BANG},
  160.     {(char_u *)"srewind",        EXTRA+BANG},
  161.     {(char_u *)"slast",            EXTRA+BANG},
  162.     {(char_u *)"stop",            TRLBAR+BANG},
  163.     {(char_u *)"sunhide",        TRLBAR},
  164.     {(char_u *)"swapname",        TRLBAR},
  165.     {(char_u *)"t",                RANGE+EXTRA+TRLBAR},
  166.     {(char_u *)"tag",            RANGE+NOTADR+COUNT+BANG+WORD1+TRLBAR+ZEROR},
  167.     {(char_u *)"tags",            TRLBAR},
  168.     {(char_u *)"unabbreviate",    EXTRA+TRLBAR+USECTRLV},
  169.     {(char_u *)"undo",            TRLBAR},
  170.     {(char_u *)"unhide",        TRLBAR},
  171.     {(char_u *)"unmap",            BANG+EXTRA+TRLBAR+USECTRLV},
  172.     {(char_u *)"vglobal",        RANGE+EXTRA+DFLALL},
  173.     {(char_u *)"version",        TRLBAR},
  174.     {(char_u *)"visual",        RANGE+BANG+FILE1},
  175.     {(char_u *)"write",            RANGE+BANG+FILE1+DFLALL+TRLBAR},
  176.     {(char_u *)"wnext",            RANGE+NOTADR+BANG+FILE1+TRLBAR},
  177.     {(char_u *)"wNext",            RANGE+NOTADR+BANG+FILE1+TRLBAR},
  178.     {(char_u *)"wprevious",        RANGE+NOTADR+BANG+FILE1+TRLBAR},
  179.     {(char_u *)"winsize",        EXTRA+NEEDARG+TRLBAR},
  180.     {(char_u *)"wq",            BANG+FILE1+DFLALL+TRLBAR},
  181.     {(char_u *)"wall",            BANG+TRLBAR},
  182.     {(char_u *)"wqall",            BANG+FILE1+DFLALL+TRLBAR},
  183.     {(char_u *)"xit",            BANG+FILE1+DFLALL+TRLBAR},
  184.     {(char_u *)"xall",            BANG+TRLBAR},
  185.     {(char_u *)"yank",            RANGE+REGSTR+COUNT+TRLBAR},
  186.     {(char_u *)"z",                RANGE+COUNT+TRLBAR},        /* not supported */
  187.     {(char_u *)"@",                RANGE+EXTRA+TRLBAR},
  188.     {(char_u *)"!",                RANGE+NAMEDFS},
  189.     {(char_u *)"<",                RANGE+COUNT+TRLBAR},
  190.     {(char_u *)">",                RANGE+COUNT+TRLBAR},
  191.     {(char_u *)"=",                RANGE+TRLBAR},
  192.     {(char_u *)"&",                RANGE+EXTRA},
  193.     {(char_u *)"~",                RANGE+EXTRA}
  194. |
  195. };
  196. |
  197.